class KMailer < ActionMailer::Base
  def messagenotice(a, de, cuerpo, asunto)
    @recipients   = a
    @from         = "kshema@no-reply.com"
    @subject      = "Nuevo mensaje en Kshema"
    @sent_on      = Time.now
    @content_type = "text/html"
    
    body[:de] = de
    body[:texto] = cuerpo
    body[:asunto] = asunto
  end
  
  def happybirthday(persona)
    @recipients   = persona.mail
    @from         = "Sede Belgrano - Red DeRose"
    headers       "Reply-to" => 'belgrano@uni-yoga.com.ar'
    @subject      = "Feliz feliz!!"
    @sent_on      = Time.now
    @content_type = "text/html"
    
    body[:nombre] = persona.nombres
  end

  def error_log(msg, exception)
    # mando mail a los administradores y a desarrollo
    admins = Role.find_by_name('admin').users  
    @recipients = ["desarrollo@kshema.com.ar"]
    @recipients << admins.collect{|a| a.email }
    @recipients = @recipients.join('; ')
    @from = "kshema@no-reply.com"
    @subject = "Error en Kshema"
    @sent_on  = Time.now
    @content_type = "text/html"
    
    body[:msg] = msg
    body[:exception] = exception
  end


  # TODO la firma esta cableada en el template del mail. hacer que sea un parametro del usuario asi hay firma del usuario
  # y setear en algunas "opciones" la firma de la unidad.
  def plainmail(recipient, cc, bcc, subject = '', message = '',from = nil, sent_at = Time.now)
    raise ArgumentError, "Se llego a enviar un plainmail sin from y sin 'to'" unless from and (recipient or cc or bcc)
    
    @subject = subject
    @recipients = recipient 
    @cc = cc
    @bcc = bcc
    @from = from
    @sent_on = sent_at
    @content_type = "text/html"
  
    @body[:message] = message
    
  rescue ArgumentError => e
    K_LOGGER.error e.message
    return false
  end
  
end
